Logging is commonly used for monitoring, analyzing, or performing diagnostic activities over a computer system. Data logging includes creation of log files to record events that occur in various software runs. Logging includes creating and storing a permanent record of events that can be reviewed, printed, and analyzed. The events include occurred errors, exceptions (critical to system, application, and user), and unexpected returns. Even an event that is not an error by itself but might lead to errors is log relevant. Each log record usually contains information for the source of the record, events, and timestamp of the event, a message and a severity that specifies the importance of the record. This information is needed for administrators to control the status of the system, the database, and applications. Typically, logging is enabled.
However, besides error and event reporting, an application/program flow must be examined and understood to diagnose an abnormal condition. Tracing provides a facility for following a program flow and locating performance bottlenecks and/or discovering a path leading to an error. The trace facility produces a detailed sequence of statements that describe the events of an operation as they are executed. Since tracing may generate huge amounts of data in a short time, it is typically not enabled. Tracing can be switched on when a problem occurs and a detailed analysis of a distinct part of a program is necessary. Having good quality logs and traces as a starting point to analyze and resolve problems and errors is essential. In network environment, where multiple systems are connected and operate as one, it is even more important to have quality logs and traces. Not per involved system, but end-to-end.